iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 4
0
自我挑戰組

Python 和 Linux 系統運維的萬般糾葛 系列 第 4

Day4 : 那麼......為什麼嘗試要用 Python 來做系統運維呢 ?

  • 分享至 

  • xImage
  •  

懺悔 : 前幾天的文章我為了對自己負責,擇日補寫完....


引言 : 十餘年前的一篇文章

面向系統管理員的Python

作為一名系統管理員,您可能碰到過各種各樣的挑戰和問題。管理用戶、磁盤空間、進程、設備和備份,可能讓許多系統管理員絞盡腦汁,從而變得心情鬱悶、甚至精神錯亂。Shell 腳本可以為此提供幫助,但是它們通常具有令人感到灰心的各種限制。在這種情況下,功能齊全的腳本編寫語言(如Python)可以將煩瑣的任務變得更加容易、並且我敢說變得充滿樂趣。

Python 是一種功能齊全的、可靠的編程語言,就這一點而論,它具有非常多的特性。學習這種語言可能不是一項非常容易的任務。然而請記住,許多Python 特性(如GUI 工具包)對系統管理員來說並沒有太大的價值。這就是本文使用特定示例的原因:它們展示了您所需要掌握的相關技能,以便能夠高效地編寫Python 腳本以完成系統管理工作。

在系統管理的工作中,您可以採用許多不同的方式來使用Python。您可以完成的主要任務之一是分析您的工作,確定需要重複執行的任務,並分析是否存在相應的Python 模塊以幫助您完成這些任務,當然,通常情況下是存在的。

Python 還可以在一些特定的領域為您提供很大的幫助,如下所示:

管理服務器:在一組服務器中為某個特定的應用程序檢查修復程序級別,並自動地對它們進行更新。

日誌記錄:如果syslog中出現了特定類型的錯誤,則自動發送一封電子郵件。

網絡連接:建立到服務器的Telnet連接,並監視連接的狀態。

測試Web應用程序:使用可以免費獲得的工具來模擬Web瀏覽器,並驗證Web應用程序的功能和性能。

上面那一段引言,看起來沒甚麼亮點,
但是這可是 IBM 在 2007 年的文章啊~
時間帶走了很多東西,但也證明了某些東西的歷久彌新~~


一般而言,就簡單的任務來說,Python要比Bash繁瑣很多,比如解壓文件之類的。
那麼有個疑問就來了:在什麼情況下,會選擇 Python 而不是 Bash 呢?

如果僅僅是寫簡單的腳本,就維護一兩台服務器的話,
確實 shell 更有優勢。

shell 的問題是項目大了以後難以維護,
以下就使用 Python 來做 Linux 系統管理的幾個優點,讓我娓娓道來吧~~


  1. Python 相較於 Shell 腳本,因為其清晰簡潔的語法,更加淺顯易懂。
  2. Python 相較於 Shell 腳本,更具有表現力且易於擴展(豐富的數據結構,多執行緒 multithreading )
  3. Python 相較於 Shell 腳本,可以跨平台運行(對 OS 的接口進行了封裝)
  4. 很多著名的自動化管理工具,都是使用 Python 去做開發,譬如說 Ansible,Fabric
  5. 在 Linux 的系統管理之上,這個應用場景剛好可以發揮 Python 的優點,迴避掉 Python 的缺點
    • 優點 : 開發效率高
    • 缺點 : 執行速度並非最快

路遙且長,讓我用這個圖來做個結尾吧 .....
甚麼時候我才能向大神一樣呢,學甚麼馬上會甚麼~~~~

666


上一篇
過死線繼續趕稿中....今天來談談模板吧(不只用來寫網頁的Jinja2)
下一篇
Day 0 : 就只是個寫作計畫 rrr
系列文
Python 和 Linux 系統運維的萬般糾葛 5
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言